@CI
1年前 提问
1个回答

java中static函数的作用是什么

Ann
1年前

static是一个修饰符,用于修饰类的成员方法、类的成员变量,另外可以编写static代码块来优化程序性能,一般称作静态方法因为非静态成员方法或者变量都必须依赖具体的对象才能够被调用。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。

java保证线程安全的方法有以下这些:

  • 针对原子性:JDK提供了非常多的Atomic类,比如AtomicInteger、AtomicLong、AtomicBoolean等等。这些类都是通过CAS来保证原子性。

  • 针对可见性:同样可以使用synchronized关键字加锁来解决。与此同时,Java提供了volatile关键字。它要优于synchronized的性能,同样也可以保证修改后对其他线程可见。volatile一般用于对变量的写操作,不依赖于当前值的场景中,比如状态标记量等等。

  • 针对有序性:也可以使用synchronized关键字定义同步代码块,或者同步方法来保证有序性。另外也可以通过Lock接口来保证有序性。